Distributed data stores often utilize data redundancy to provide reliability. For instance, multiple instances of the same data object may be stored on different storage devices. If a storage device failure causes the loss of one instance of the data object, other instances of the data object may be stored safely on storage devices that have not failed. In some cases, distributed data stores may provide data resilience by storing multiple instances of the same data object in geographically diverse locations. For instance, data objects may be replicated across different data centers in different regions. In these cases, data objects at one data center should be isolated from a disaster at another data center and vice versa.
Various properties are used to characterize distributed systems, such as the availability of data from the distributed system and the consistency of data within the distributed system. Typically, consistency and availability within a distributed data store are subject to the constraints of the CAP theorem (also known as Brewer's theorem), which generally states that distributed systems can provide one but not both of availability guarantees and consistency guarantees in the presence of network partitioning. With respect to availability and consistency, architects of distributed systems typically choose to prioritize one over the other. A high level of availability can be provided at the expense of full consistency; a high level of consistency can be provided at the expense of complete availability.
While the system and method for measuring consistency within a distributed storage system is described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that the system and method for measuring consistency within a distributed storage system is not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit the system and method for measuring consistency within a distributed storage system to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the system and method for measuring consistency within a distributed storage system as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to.